#定义函数
# def 函数名(参数):
#     代码1
#     代码2

#调用函数
#函数名(参数)      注意：1、不同的需求，参数可有可无；2、在Python中，函数必须先定义后使用

#需求：复现ATM取钱功能
#1、搭建整体框架（复现需求）
print('密码正确登录成功！')
#显示“选择功能”界面
print('查询余额完毕')
#显示“选择功能”界面
print('取了2000元钱')
#显示“选择功能”界面

#2、确定“选择功能”界面内容
print('查询余额')
print('存款')
print('取款')

#3、封装“选择功能”   注意：一定是先定义函数，后调用函数
#封装ATM机功能选项--定义函数
def select_func():
    print('----请选择功能-----')
    print('查询余额')
    print('存款')
    print('取款')
    print('----请选择功能-----')

#4、调用函数   在需要显示“选择功能”函数的位置调用函数
print('密码正确登录成功')
#显示“选择功能”界面--调用函数
select_func()

print('查询余额完毕')
#显示“选择功能”界面--调用函数
select_func()

print('取了2000元钱')
#显示“选择功能”界面--调用函数
select_func()

#需求：⼀个函数完成两个数1和2的加法运算
def add_num1():
    result=1+2
    return result

print(add_num1())

#如果想要这个函数变得更更灵活，可以计算任何⽤用户指定的两个数字的和，如何书写程序？
def add_num2(a,b):
    result=a+b
    return result

print(add_num2(2, 3))

#函数的返回值作用
# 需求：制作一个计算器，计算任意两数之和，并保存结果
def sum_num(m,n):
    """求和函数"""
    return m+n
#用result变量保存函数返回值
result=sum_num(1,2)
print(result)

#函数的说明文档
'''
语法：
def 函数名(参数)：
    """说明文档的位置"""
    代码
'''
#查看函数的说明文档
# help(函数名)
help(sum_num)

#函数嵌套调用
def testB():
    print('----testB start----')
    print('这里是testB函数执行的代码...(省略)...')
    print('----testB end----')

def testA():
    print('----testA start----')
    testB()
    print('----testA end----')

testA()

#打印图形
#打印一条横线
def print_line():
    print('-'*20)
print_line()

#打印多条横线
def print_line():
    print('-'*20)
def print_lines(num):
    i=0
    while i<num:
        print_line()
        i+=1
print_lines(5)

#函数计算
#求三个数之和
def sum_num(a,b,c):
    return a+b+c

result=sum_num(1,2,3)
print(result)   #6

#求三个数平均值
def average_num(a,b,c):
    sumResult=sum_num(a,b,c)
    return sumResult/3
result=average_num(1,2,3)
print(result)